This stack eliminates script based viruses which spread themselves by appending the scripts of other stacks with additional instructions which in turn infects every stack they come in contact with. The original virus of this ilk is called “merryxmas.”
merryxmas Vaccine The Next Generation
————————————————————————————————
Since the appearance of merryxmas, other strains have surfaced such as merry2xmas, Lopez and others too crude to mention. Version 3.0 of this stack is a new, broad spectrum vaccine that catches them all.
What the viruses do
————————————————
By design, most of these viruses are intended only to replicate themselves in other stacks. The worst they are intended to do is quit (not crash) HyperCard unexpectedly. An unintended problem is that portions of other scripts can get sucked into the virus script. The results can be confusing and frustrating.
NEW in v3.0
Another HyperTalk based virus that merryxmas Vaccine now catches is “pickle” also known as “HC 9507.” The pickle virus is a nasty creation that copies not only itself into the scripts of random stacks, it copies resources — several of which are bastardized copies of Frédéric Rinaldi’s XCMDs & XFCNs.
If your stack already contains resources with the same name or
ID numbers — they get clobbered. Pickle is also known to cause crashes.
Requirements
———————————
This stack requires HyperCard v2.1 or later. This is to handle System 7 aliases. System 7 is not required. Color monitors (optional) will display “status colors.”
If you use a compression utility such as AutoDoubler™, be sure to have adequate free space on the volume being checked. Stacks have a way of expanding as they are being examined.
This stack needs to run unlocked in order to display it’s findings.
What this stack will do
———————————————————
For a selected stack, folder or entire volume, this stack will peek at the stack scripts (without opening the stacks); and strip out the virus code.
A bonus feature is the option to let it compact those stacks that have free space available for compacting. Don’t worry about locked stacks—this stack will unlock them as needed and relock them.
This stack will also offer to lock the Home stack against future infections. This is the same as checking the “Locked” checkbox in the Get Info window and can be unlocked at any time by clicking once on the icon of the Home stack; choosing Get Info from the File menu; then unchecking the checkbox.
How to use this stack
——————————————————
Step 1. If you know, or suspect that the Home stack is infected, it is a
good idea to replace it with a copy from your original disk first.
Step 2. Open this stack and click the “Disinfect Stacks” button.
Step 3. Select the stack, folder or volume (disk) you wish to disinfect.
NEW in v3.0
Thanks to this version’s ability to disinfect itself upon opening if need be, you no longer have to be concerned with keeping a locked copy of this stack to protect it from infection.
To take this stack out for a dry run first, use it to scan a floppy disk.
Locked volumes will be scanned without making changes.
The scripts
—————————
The code is based on a copy of an infected stack brought to my attention by Ken Dunham at LaGrande Middle School. It was developed on my own time, at home, for use by anyone.
Soapbox
———————
Viruses are unworthy creations for such clever and talented people.
It is my hope that the authors of HyperTalk based viruses will realize the destructive impact that pranks like this have in terms of lost time & productivity and find inspiration for more constructive contributions.
Copycat virus spreaders on the other hand are neither clever nor talented.
They are small minded trouble makers, low on the food chain.
Bill Swagerty
AOL: Bill DS
Internet: billds@aol.com
Acknowledgements & Version History
——————————————————————————————
Version 3.0
-Now scans itself for viruses and eliminates them upon opening.
-Created two new XFCNs for better script salvaging performance.
-Now eliminates virus code from the unused portion of the data fork to
help commercial utilities that can’t tell what’s used from what isn’t.
-New DNACheck XFCN to catch all strains of the merryxmas virus including
a destructive strain called “crudshot.”
-Removes the “pickle” virus, a HyperTalk virus not related to merryxmas.
*Jacque Gay for excellent brainstorming and thorough testing.
*Bill Stafford for pointing out how compacting could work as intended.
*Ken Dunham for pointing out a resume stack window loading problem.
*Till Stegers for suggesting the option to save reports to a file on disk.
Version 2.0
*Jacque Gay for ideas on broader detection and protection techniques.
*Ralph Gross, Batavia Middle School for isolating additional virus strains.
-Now employs a custom XFCN to catch more strains of merryxmas.
-Abandoned attempts at inoculating the Home stack in favor of locking it.
-Added provision for scanning standalone stack applications.
Version 1.5
*Dennis Kane for bringing the misuse of a reserved word to my attention.
-Added an option to inoculate the Home stack against future infections.
-Made the color indicator move with the card when the window is moved.
-Added a button for printing the activity report at the end of a scan.
-Added a musical completion notice.
Version 1.4
*Ronald Zellner, Texas A&M University for better inoculation strings.
-Added provision for scanning an individual stack or folder.
-Enhanced to display colors on monitors set for more than 256 colors.
Version 1.3
-To accommodate accidental mutations, the vaccine now removes
everything from the virus code on down from infected stack scripts.
-Stacks are assumed to be Finder locked if IsFinderLocked fails.
Version 1.2
*Mark Johnson for pointing out GetDir’s weakness for names with commas.
-Color indicator light left red if any stacks could not be disinfected.
Version 1.1
-Accommodated the way Mac Pluses respond to the MonitorConfig XFCN.
Version 1.0
*Ken Dunham <kdunham@ednet1.osl.or.gov> for telling me about the virus.
*Bill Marriott for the straight HyperTalk progress bar.